rand(), srand() এর মাধ্যমে র‍্যান্ডম নাম্বার জেনারেশন

Computer Programming - সি স্ট্যান্ডার্ড লাইব্রেরি রেফারেন্স (C Standard Library Reference) Utility Functions (ইউটিলিটি ফাংশনস) |
229
229

rand() এবং srand() এর মাধ্যমে র‍্যান্ডম নাম্বার জেনারেশন

সি প্রোগ্রামিং ভাষায় rand() এবং srand() ফাংশনগুলি র‍্যান্ডম নাম্বার জেনারেশনের জন্য ব্যবহৃত হয়। rand() ফাংশন একটি পসিবল র‍্যান্ডম নাম্বার উৎপন্ন করে, এবং srand() ফাংশনটি র‍্যান্ডম নাম্বার জেনারেটরের বীজ (seed) সেট করে, যাতে র‍্যান্ডম নাম্বারগুলি প্রতি চালনার সময় আলাদা আলাদা হয়। সাধারণভাবে, র‍্যান্ডম নাম্বারগুলি অনেক ধরনের সিমুলেশন, গেম, বা পরীক্ষামূলক কাজে ব্যবহৃত হয়।

সিঙ্কট্যাক্স:

  1. rand():

    int rand(void);
  • এটি একটি পসিবল র‍্যান্ডম নাম্বার রিটার্ন করে।
  • সাধারণত, এটি 0 থেকে RAND_MAX পর্যন্ত একটি সংখ্যা রিটার্ন করে।
  1. srand():

    void srand(unsigned int seed);
  • এটি র‍্যান্ডম নাম্বার জেনারেটরের বীজ (seed) সেট করে। সাধারণত time() ফাংশন থেকে সিড নেয়া হয়, যাতে প্রতিবার আলাদা র‍্যান্ডম নাম্বার উৎপন্ন হয়।

উদাহরণ: rand() এবং srand() ব্যবহার

১. র‍্যান্ডম নাম্বার জেনারেশন (বীজ ছাড়া)

যদি আপনি শুধুমাত্র rand() ফাংশন ব্যবহার করেন, তাহলে প্রতিবার প্রোগ্রামটি চালানোর সময় একই র‍্যান্ডম নাম্বার উৎপন্ন হবে, কারণ র‍্যান্ডম জেনারেটরের বীজ একটিই থাকে। এটি সাধারণত পূর্বনির্ধারিত থাকে।

#include <stdio.h>
#include <stdlib.h>

int main() {
    int random_number;

    // র‍্যান্ডম নাম্বার জেনারেশন
    random_number = rand();
    printf("Random number: %d\n", random_number);

    return 0;
}

এখানে, rand() একটি পসিবল র‍্যান্ডম নাম্বার রিটার্ন করবে, কিন্তু প্রতিবার প্রোগ্রাম চালানোর সময় একই নাম্বার আসবে।


২. srand() এবং rand() ব্যবহার (অলাদা র‍্যান্ডম নাম্বার)

যদি আপনি চাইছেন যে, প্রতিবার প্রোগ্রাম চালানোর সময় ভিন্ন ভিন্ন র‍্যান্ডম নাম্বার তৈরি হোক, তবে আপনাকে srand() ফাংশন ব্যবহার করতে হবে। srand() এর মাধ্যমে আপনি র‍্যান্ডম নাম্বার জেনারেটরের বীজ সেট করেন, এবং সাধারণত time(NULL) ব্যবহার করা হয় যা সিস্টেমের বর্তমান সময় দেয়। এতে প্রতিবার প্রোগ্রাম চালানোর সময় একটি নতুন সিড তৈরি হয় এবং ভিন্ন ভিন্ন র‍্যান্ডম নাম্বার পাওয়া যায়।

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int random_number;

    // র‍্যান্ডম নাম্বার জেনারেটরের বীজ সেট করা
    srand(time(NULL));  // বর্তমান সময় দিয়ে সিড সেট করা

    // র‍্যান্ডম নাম্বার জেনারেশন
    random_number = rand();
    printf("Random number: %d\n", random_number);

    return 0;
}

এখানে time(NULL) বর্তমান সময়ের সেকেন্ড মান দিচ্ছে এবং সেটি srand() ফাংশনে সিড হিসেবে ব্যবহৃত হচ্ছে। এর ফলে প্রতিবার প্রোগ্রাম চালানোর সময় আলাদা আলাদা র‍্যান্ডম নাম্বার উৎপন্ন হবে।

র‍্যান্ডম নাম্বারকে একটি সীমার মধ্যে সীমাবদ্ধ করা

আপনি rand() ফাংশন থেকে যে র‍্যান্ডম নাম্বারটি পাচ্ছেন তা 0 থেকে RAND_MAX পর্যন্ত হতে পারে। তবে আপনি যদি একটি নির্দিষ্ট সীমার মধ্যে র‍্যান্ডম নাম্বার চান, তবে সেটি করতে পারেন:

উদাহরণ: 1 থেকে 100 এর মধ্যে র‍্যান্ডম নাম্বার তৈরি

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int random_number;

    // র‍্যান্ডম নাম্বার জেনারেটরের বীজ সেট করা
    srand(time(NULL));

    // 1 থেকে 100 এর মধ্যে র‍্যান্ডম নাম্বার জেনারেশন
    random_number = (rand() % 100) + 1;

    printf("Random number between 1 and 100: %d\n", random_number);

    return 0;
}

এখানে rand() % 100 দিয়ে 0 থেকে 99 এর মধ্যে একটি নাম্বার তৈরি হবে, তারপর +1 করে সেটি 1 থেকে 100 এর মধ্যে র‍্যান্ডম নাম্বার তৈরি হবে।

সারসংক্ষেপ

ফাংশনবর্ণনাসিঙ্কট্যাক্স
rand()র‍্যান্ডম নাম্বার জেনারেট করে।int rand(void);
srand()র‍্যান্ডম নাম্বার জেনারেটরের বীজ সেট করেvoid srand(unsigned int seed);
  • rand() ফাংশনটি র‍্যান্ডম নাম্বার তৈরি করে, তবে এটি একই সিডের সাথে প্রতি চালনায় একই নাম্বার দিতে পারে।
  • srand() ফাংশনটি র‍্যান্ডম নাম্বার জেনারেটরের সিড সেট করে এবং সাধারণত time(NULL) ব্যবহার করা হয়, যাতে প্রতি চালনায় আলাদা র‍্যান্ডম নাম্বার তৈরি হয়।
  • র‍্যান্ডম নাম্বার একটি নির্দিষ্ট সীমার মধ্যে সীমাবদ্ধ করতে rand() % n ব্যবহার করা হয়।
common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion